<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 运算符
    // 算术运算符   * / %    + -
    // 关系运算符   > >= < <=    == != === !==
    // 逻辑运算符   !   &&  ||
    // 三目运算符  ?:
    // 赋值运算符  = += -= *= /= %=    ++ --

    // () [] .> ! ++ -- typeof > 算术运算符  >  关系运算符  > 逻辑运算符(!比较特殊) >  三目运算符  > 赋值运算符(++ -- 比较特殊) 



</script>
<script>
    // 1. 有一个数组 list=["a","b","c","d","e","f"] 随机取四个元素,放到新数组中,再拼接形成字符串 (可以重复)
    // 1.1  要求随机的四个元素 不重复
    //  提示:数组如何取值?  能不能放到新数组中?

    //  数组如何取值?  => 依赖于下标  => 随机取元素 => 随机下标 [0,list.length-1]

    // var list = ["a", "b", "c", "d", "e", "f"];
    // var index = Math.round(Math.random() * (list.length - 1));
    // var index = Math.floor(Math.random() * list.length);
    // var char = list[index]
    // console.log(char);


    // var list = ["a", "b", "c", "d", "e", "f"];
    // var arr = [];
    // for (var i = 0; i < 4; i++) {
    //     var index = Math.floor(Math.random() * list.length);
    //     var char = list[index]
    //     // console.log(char);
    //     arr.push(char);
    // }
    // console.log(arr);  // 可能有重复项  => 每次取值之后直接放到新数组中


    // 1.1  要求随机的四个元素 不重复

    // 问题 => 存在的话怎么办?
    // var list = ["a", "b", "c", "d", "e", "f"];
    // var arr = [];
    // for (var i = 0; i < 4; i++) {
    //     var index = Math.floor(Math.random() * list.length);
    //     var char = list[index];
    //     // (1) 放之前先判断新数组中是否存在 随机的元素
    //     // arr.includes(char) == false
    //     // !arr.includes(char) == true  =>  arr.includes(char) == false
    //     if (!arr.includes(char)) {   // 不存在 => 放
    //         arr.push(char);
    //     } else { //存在  => 怎么办?
    //         console.log(char + "已存在");
    //     }
    // }
    // console.log(arr);  // 可能有重复项

    // var list = ["a", "b", "c", "d", "e", "f"];
    // var arr = [];
    // var count = 4;
    // for (var i = 0; i < count; i++) {
    //     var index = Math.floor(Math.random() * list.length);
    //     var char = list[index];
    //     // (1) 放之前先判断新数组中是否存在 随机的元素
    //     // arr.includes(char) == false
    //     // !arr.includes(char) == true  =>  arr.includes(char) == false
    //     if (!arr.includes(char)) {   // 不存在 => 放
    //         arr.push(char);
    //     } else { //存在  => 怎么办?
    //         console.log(char + "已存在");
    //         count++;  // 存在 => 送一次
    //     }
    // }
    // console.log(arr);  // 可能有重复项




    /* var list = ["a", "b", "c", "d", "e", "f"];
    var arr = [];
    for (var i = 0; i < 4; i++) {  // 假设 i=2 时重复
        var index = Math.floor(Math.random() * list.length);
        var char = list[index];
        // (1) 放之前先判断新数组中是否存在 随机的元素
        // arr.includes(char) == false
        // !arr.includes(char) == true  =>  arr.includes(char) == false
        if (!arr.includes(char)) {   // 不存在 => 放  
            arr.push(char);
        } else { //存在  => 怎么办?
            console.log(char + "已存在");
            i--;  // 存在 => 这一次不算   i-- => i = 1 => 本次循环结束 i++ => 下一次还是 2 
        }
    }
    console.log(arr);  // 可能有重复项 */


    var list = ["a", "b", "c", "d", "e", "f"];
    var arr = [];

    while (arr.length < 4) {
        var index = Math.floor(Math.random() * list.length);
        var char = list[index];
        // (1) 放之前先判断新数组中是否存在 随机的元素
        // arr.includes(char) == false
        // !arr.includes(char) == true  =>  arr.includes(char) == false
        if (!arr.includes(char)) {   // 不存在 => 放  
            arr.push(char);
        }
    }

    console.log(arr);



</script>

</html>